package com.platform.modules.phone;

import com.fasterxml.jackson.annotation.JsonValue;

import javax.xml.bind.annotation.XmlEnumValue;

/**
 * 话费充值常量
 */
public class PhoneTopUpContants {

    //------------------------业务相关----------------------------//

    /**
     * 日期格式化 pattern
     */
    public static final String DATE_PATTERN = "YYYYMMddHHmmss";

    /**
     * 请求数据编码
     */
    public static final String REQ_CHARSET = "UTF-8";

    /**
     * 响应数据编码
     */
    public static final String RES_CHARSET = "GB2312";

    /**
     * 请求数据 分割符
     */
    public static final String REQ_DATA_SPLIT_CHAR = "|";

    /**
     * 请求数据 K
     */
    public static final String REQ_DATA_K = "Orderinfo";

    /**
     * 请求签名 K
     */
    public static final String REQ_SIGN_K = "Sign";

    /**
     * 回调处理成功
     */
    public static final String CALL_BACK_HANDLE_SUCCESS = "OK";

    /**
     * 回调处理失败
     */
    public static final String CALL_BACK_HANDLE_ERROR = "ERROR";

    //-------------------------请求相关-------------------------------//

    /**
     * 回复方式:xml (目前只支持 xml)
     */
    public static final String REPLY_FORMAT = "xml";

    /**
     * 请求的Command
     */
    public static final String REQ_COMMAND = "9";

    /**
     * 版本名
     */
    public static final String INTERFACE_NAME = "007KA_KM";

    /**
     * 版本号
     */
    public static final String INTERFACE_NUMBER = "1.0.2.0";

    /**
     * 响应成功
     */
    public static final Integer RES_SUCCESS = 1;

    /**
     * 电话卡类型
     */
    public enum CartTypeEnum {
        /**
         * 联通
         */
        UNICOM(8),
        /**
         * 移动
         */
        MOBILE(1),
        /**
         * 电信
         */
        TELECOM(2);

        @JsonValue
        private Integer value;

        CartTypeEnum(Integer value) {
            this.value = value;
        }

        public Integer getValue() {
            return value;
        }
    }


    /**
     * 响应的command
     *
     * @author xiaoem
     */
    public enum ResCommandEnum {
        /**
         * 确认收到交易请求
         */
        @XmlEnumValue("11")
        RECEIVE_REQUEST(11),

        /**
         * 反馈充值结果
         */
        @XmlEnumValue("12")
        TOPUP_RESULT(12),
        ;

        ResCommandEnum(Integer value) {
            this.value = value;
        }

        public Integer getValue() {
            return value;
        }

        @JsonValue
        private Integer value;
    }

}
